#ifndef _DEFINES_
#define _DEFINES_

#include "Character.h"

//These defines are for vector.h

//**--------------------------------------------*//
//Common Data Types
#define INTEGER		0x00000001
#define FLOAT		0x00000010
#define DOUBLE		0x00000011
#define CHAR		0x00000100
#define CHARSTAR	0x00000101
#define BOOLEAN		0x00000110
#define STRING		0x00000111
#define VOIDP		0x00001000
#define FUNC		0x00001001
#define CHARACTER	0x00001010
#define EMPTY		0x00000000
//How to print a bit flag
//printf("%x08\n",TYPE);

#define DeleteVectorData(x)										\
{																\
	switch(x->GetDataType())										\
	{															\
	case CHARSTAR: delete((char*)x->GetData());break;			\
	case VOIDP:	delete(x->GetData());break;						\
	case CHARACTER: delete((Character*)x->GetData());break;		\
	case FUNC: break;											\
	default:break;												\
	}															\
}																\

#define DeleteVectorDataP(x)		\
{									\
	for(int i = 0;i < m_size;++i)	\
	{								\
		DeleteVectorData(m_ptr[i]);	\
		delete(m_ptr[i]);			\
	}								\
	delete(m_ptr);					\
}									\
//**--------------------------------------------*//

#endif